//
//  PopoverPresentationController.swift
//  Status
//
//  Created by 花轮 on 15/5/15.
//  Copyright (c) 2015年 花轮. All rights reserved.
//

import UIKit

/*
    containerView 容器视图 是一个透明的，最大的一个容器，把要modal的控制器整个放进去,构造函数中，是nil，符合懒加载原则
    presentedView() 被展现的视图
    containerViewWillLayoutSubviews() 将要布局子视图，自定义 presentedView 的大小和位置  
*/

class PopoverPresentationController: UIPresentationController {
    
    // 展现视图的大小
    var presentedFrame: CGRect = CGRectZero
    
    lazy var dummyView: UIView = {
        let v = UIView()
        v.backgroundColor = UIColor(white: 0.0, alpha: 0.1)
        
        // 手势识别，可以隔离底层所有的视图
        let tap = UITapGestureRecognizer(target: self, action: "clickDummyView")
        v.addGestureRecognizer(tap)
        
        return v
    }()
    
    func clickDummyView()
    {
        self.presentedViewController.dismissViewControllerAnimated(true, completion: nil)
    }
    
//    override init(presentedViewController: UIViewController!, presentingViewController: UIViewController!) {
//        super.init(presentedViewController: presentedViewController, presentingViewController: presentingViewController)
//        
//        // 要modal显示的视图控制器
////        println("presentedViewController\(presentedViewController)")
//        // 文档说，底层的视图控制器，但是实测 nil
////        println("presentedViewController\(presentedViewController)")
//        
////        println(self.containerView)
//    }
    
    override func containerViewWillLayoutSubviews() {
        super.containerViewWillLayoutSubviews()
        
        // 设置目标视图的大小
        dummyView.frame = containerView.bounds
        
//        println(self.containerView)
        containerView.insertSubview(dummyView, atIndex: 0)
        
        presentedView().frame = presentedFrame
    }
}
